from numpy import dtype
import pandas as pd
from pandapower._version import __version__, __format_version__


def get_structure_dict() -> dict:
    """
    This function returns the structure dict of the network
    """
    return {
        # structure data
        "bus": {
            "name": dtype(object),
            "vn_kv": "f8",
            "type": dtype(object),
            "zone": dtype(object),
            "in_service": "bool",
            "geo": dtype(str),
        },
        "bus_dc": {
            "name": dtype(object),
            "vn_kv": "f8",
            "type": dtype(object),
            "zone": dtype(object),
            "in_service": "bool",
            "geo": dtype(str),
        },
        "load": {
            "name": dtype(object),
            "bus": "u4",
            "p_mw": "f8",
            "q_mvar": "f8",
            "const_z_p_percent": "f8",
            "const_i_p_percent": "f8",
            "const_z_q_percent": "f8",
            "const_i_q_percent": "f8",
            "sn_mva": "f8",
            "scaling": "f8",
            "in_service": "bool",
            "type": dtype(object),
        },
        "sgen": {
            "name": dtype(object),
            "bus": "i8",
            "p_mw": "f8",
            "q_mvar": "f8",
            "min_q_mvar": "f8",
            "max_q_mvar": "f8",
            "sn_mva": "f8",
            "scaling": "f8",
            "controllable": "bool",
            "id_q_capability_characteristic": pd.Int64Dtype(),
            "reactive_capability_curve": "bool",
            "curve_style": dtype(object),
            "in_service": "bool",
            "type": dtype(object),
            "current_source": "bool",
        },
        "motor": {
            "name": dtype(object),
            "bus": "i8",
            "pn_mech_mw": "f8",
            "loading_percent": "f8",
            "cos_phi": "f8",
            "cos_phi_n": "f8",
            "efficiency_percent": "f8",
            "efficiency_n_percent": "f8",
            "lrc_pu": "f8",
            "vn_kv": "f8",
            "scaling": "f8",
            "in_service": "bool",
            "rx": "f8",
        },
        "asymmetric_load": {
            "name": dtype(object),
            "bus": "u4",
            "p_a_mw": "f8",
            "q_a_mvar": "f8",
            "p_b_mw": "f8",
            "q_b_mvar": "f8",
            "p_c_mw": "f8",
            "q_c_mvar": "f8",
            "sn_mva": "f8",
            "scaling": "f8",
            "in_service": "bool",
            "type": dtype(object),
        },
        "asymmetric_sgen": {
            "name": dtype(object),
            "bus": "i8",
            "p_a_mw": "f8",
            "q_a_mvar": "f8",
            "p_b_mw": "f8",
            "q_b_mvar": "f8",
            "p_c_mw": "f8",
            "q_c_mvar": "f8",
            "sn_mva": "f8",
            "scaling": "f8",
            "in_service": "bool",
            "type": dtype(object),
            "current_source": "bool",
        },
        "storage": {
            "name": dtype(object),
            "bus": "i8",
            "p_mw": "f8",
            "q_mvar": "f8",
            "sn_mva": "f8",
            "soc_percent": "f8",
            "min_e_mwh": "f8",
            "max_e_mwh": "f8",
            "scaling": "f8",
            "in_service": "bool",
            "type": dtype(object),
        },
        "gen": {
            "name": dtype(object),
            "bus": "u4",
            "p_mw": "f8",
            "vm_pu": "f8",
            "sn_mva": "f8",
            "min_q_mvar": "f8",
            "max_q_mvar": "f8",
            "scaling": "f8",
            "slack": "bool",
            "controllable": "bool",
            "id_q_capability_characteristic": pd.Int64Dtype(),
            "reactive_capability_curve": "bool",
            "curve_style": dtype(object),
            "in_service": "bool",
            "slack_weight": "f8",
            "type": dtype(object),
        },
        "switch": {
            "bus": "i8",
            "element": "i8",
            "et": dtype(object),
            "type": dtype(object),
            "closed": "bool",
            "name": dtype(object),
            "z_ohm": "f8",
            "in_ka": "f8",
        },
        "shunt": {
            "bus": "u4",
            "name": dtype(object),
            "q_mvar": "f8",
            "p_mw": "f8",
            "vn_kv": "f8",
            "step": "u4",
            "max_step": "u4",
            "id_characteristic_table": pd.Int64Dtype(),
            "step_dependency_table": "bool",
            "in_service": "bool",
        },
        "svc": {
            "name": dtype(object),
            "bus": "u4",
            "x_l_ohm": "f8",
            "x_cvar_ohm": "f8",
            "set_vm_pu": "f8",
            "thyristor_firing_angle_degree": "f8",
            "controllable": "bool",
            "in_service": "bool",
            "min_angle_degree": "f8",
            "max_angle_degree": "f8",
        },
        "ssc": {
            "name": dtype(object),
            "bus": "u4",
            "r_ohm": "f8",
            "x_ohm": "f8",
            "vm_internal_pu": "f8",
            "va_internal_degree": "f8",
            "set_vm_pu": "f8",
            "controllable": "bool",
            "in_service": "bool",
        },
        "vsc": {
            "name": dtype(object),
            "bus": "u4",
            "bus_dc": "u4",
            "r_ohm": "f8",
            "x_ohm": "f8",
            "r_dc_ohm": "f8",
            "pl_dc_mw": "f8",
            "control_mode_ac": dtype(object),
            "control_value_ac": "f8",
            "control_mode_dc": dtype(object),
            "control_value_dc": "f8",
            "controllable": "bool",
            "in_service": "bool",
            "ref_bus": "u4",
        },
        "ext_grid": {
            "name": dtype(object),
            "bus": "u4",
            "vm_pu": "f8",
            "va_degree": "f8",
            "slack_weight": "f8",
            "in_service": "bool",
            "controllable": "bool",
        },
        "line": {
            "name": dtype(object),
            "std_type": dtype(object),
            "from_bus": "u4",
            "to_bus": "u4",
            "length_km": "f8",
            "r_ohm_per_km": "f8",
            "x_ohm_per_km": "f8",
            "c_nf_per_km": "f8",
            "g_us_per_km": "f8",
            "max_i_ka": "f8",
            "df": "f8",
            "parallel": "u4",
            "type": dtype(object),
            "in_service": "bool",
            "geo": dtype(str),
        },
        "line_dc": {
            "name": dtype(object),
            "std_type": dtype(object),
            "from_bus_dc": "u4",
            "to_bus_dc": "u4",
            "length_km": "f8",
            "r_ohm_per_km": "f8",
            "g_us_per_km": "f8",
            "max_i_ka": "f8",
            "df": "f8",
            "parallel": "u4",
            "type": dtype(object),
            "in_service": "bool",
            "geo": dtype(str),
        },
        "trafo": {
            "name": dtype(object),
            "std_type": dtype(object),
            "hv_bus": "u4",
            "lv_bus": "u4",
            "sn_mva": "f8",
            "vn_hv_kv": "f8",
            "vn_lv_kv": "f8",
            "vk_percent": "f8",
            "vkr_percent": "f8",
            "pfe_kw": "f8",
            "i0_percent": "f8",
            "shift_degree": "f8",
            "tap_side": dtype(object),
            "tap_neutral": "f8",
            "tap_min": "f8",
            "tap_max": "f8",
            "tap_step_percent": "f8",
            "tap_step_degree": "f8",
            "tap_pos": "f8",
            "tap_changer_type": dtype(object),
            "id_characteristic_table": pd.Int64Dtype(),
            "tap_dependency_table": "bool",
            "parallel": "u4",
            "df": "f8",
            "in_service": "bool",
        },
        "trafo3w": {
            "name": dtype(object),
            "std_type": dtype(object),
            "hv_bus": "u4",
            "mv_bus": "u4",
            "lv_bus": "u4",
            "sn_hv_mva": "f8",
            "sn_mv_mva": "f8",
            "sn_lv_mva": "f8",
            "vn_hv_kv": "f8",
            "vn_mv_kv": "f8",
            "vn_lv_kv": "f8",
            "vk_hv_percent": "f8",
            "vk_mv_percent": "f8",
            "vk_lv_percent": "f8",
            "vkr_hv_percent": "f8",
            "vkr_mv_percent": "f8",
            "vkr_lv_percent": "f8",
            "pfe_kw": "f8",
            "i0_percent": "f8",
            "shift_mv_degree": "f8",
            "shift_lv_degree": "f8",
            "tap_side": dtype(object),
            "tap_neutral": "f8",
            "tap_min": "f8",
            "tap_max": "f8",
            "tap_step_percent": "f8",
            "tap_step_degree": "f8",
            "tap_pos": "f8",
            "tap_at_star_point": "bool",
            "tap_changer_type": dtype(object),
            "id_characteristic_table": pd.Int64Dtype(),
            "tap_dependency_table": "bool",
            "in_service": "bool",
        },
        "impedance": {
            "name": dtype(object),
            "from_bus": "u4",
            "to_bus": "u4",
            "rft_pu": "f8",
            "xft_pu": "f8",
            "rtf_pu": "f8",
            "xtf_pu": "f8",
            "gf_pu": "f8",
            "bf_pu": "f8",
            "gt_pu": "f8",
            "bt_pu": "f8",
            "sn_mva": "f8",
            "in_service": "bool",
        },
        "tcsc": {
            "name": dtype(object),
            "from_bus": "u4",
            "to_bus": "u4",
            "x_l_ohm": "f8",
            "x_cvar_ohm": "f8",
            "set_p_to_mw": "f8",
            "thyristor_firing_angle_degree": "f8",
            "controllable": "bool",
            "in_service": "bool",
        },
        "dcline": {
            "name": dtype(object),
            "from_bus": "u4",
            "to_bus": "u4",
            "p_mw": "f8",
            "loss_percent": "f8",
            "loss_mw": "f8",
            "vm_from_pu": "f8",
            "vm_to_pu": "f8",
            "max_p_mw": "f8",
            "min_q_from_mvar": "f8",
            "min_q_to_mvar": "f8",
            "max_q_from_mvar": "f8",
            "max_q_to_mvar": "f8",
            "in_service": "bool",
        },
        "ward": {
            "name": dtype(object),
            "bus": "u4",
            "ps_mw": "f8",
            "qs_mvar": "f8",
            "qz_mvar": "f8",
            "pz_mw": "f8",
            "in_service": "bool",
        },
        "xward": {
            "name": dtype(object),
            "bus": "u4",
            "ps_mw": "f8",
            "qs_mvar": "f8",
            "qz_mvar": "f8",
            "pz_mw": "f8",
            "r_ohm": "f8",
            "x_ohm": "f8",
            "vm_pu": "f8",
            "slack_weight": "f8",
            "in_service": "bool",
        },
        "measurement": {
            "name": dtype(object),
            "measurement_type": dtype(object),
            "element_type": dtype(object),
            "element": "uint32",
            "value": "float64",
            "std_dev": "float64",
            "side": dtype(object),
        },
        "pwl_cost": {
            "power_type": dtype(object),
            "element": "u4",
            "et": dtype(object),
            "points": dtype(object),
        },
        "poly_cost": {
            "element": "u4",
            "et": dtype(object),
            "cp0_eur": "f8",
            "cp1_eur_per_mw": "f8",
            "cp2_eur_per_mw2": "f8",
            "cq0_eur": "f8",
            "cq1_eur_per_mvar": "f8",
            "cq2_eur_per_mvar2": "f8",
        },
        "controller": {
            "object": dtype(object),
            "in_service": "bool",
            "order": "float64",
            "level": dtype(object),
            "initial_run": "bool",
            "recycle": dtype(object),
        },
        "group": {
            "name": dtype(object),
            "element_type": dtype(object),
            "element_index": dtype(object),
            "reference_column": dtype(object),
        },
        "source_dc": {
            "name": dtype(object),
            "bus_dc": "u4",
            "vm_pu": "f8",
            "in_service": "bool",
            "type": dtype(object),
        },
        "load_dc": {
            "name": dtype(object),
            "bus_dc": "u4",
            "p_dc_mw": "f8",
            "scaling": "f8",
            "in_service": "bool",
            "controllable": "bool",
            "type": dtype(object),
        },
        "b2b_vsc": {
            "name": dtype(object),
            "bus": "u4",
            "bus_dc_plus": "u4",
            "bus_dc_minus": "u4",
            "r_ohm": "f8",
            "x_ohm": "f8",
            "r_dc_ohm": "f8",
            "pl_dc_mw": "f8",
            "control_mode_ac": dtype(object),
            "control_value_ac": "f8",
            "control_mode_dc": dtype(object),
            "control_value_dc": "f8",
            "controllable": "bool",
            "in_service": "bool",
        },
        "_empty_res_b2b_vsc": {
            "p_mw": "f8",
            "q_mvar": "f8",
            "p_dc_mw_p": "f8",
            "p_dc_mw_m": "f8",
            "vm_internal_pu": "f8",
            "vm_internal_degree": "f8",
            "vm_pu": "f8",
            "va_degree": "f8",
            "vm_internal_dc_pu_p": "f8",
            "vm_internal_dc_pu_m": "f8",
            "vm_dc_pu_p": "f8",
            "vm_dc_pu_m": "f8",
        },
        "bi_vsc": {
            "name": dtype(object),
            "bus": "u4",
            "bus_dc_plus": "u4",
            "bus_dc_minus": "u4",
            "r_ohm": "f8",
            "x_ohm": "f8",
            "r_dc_ohm": "f8",
            "pl_dc_mw": "f8",
            "control_mode_ac": dtype(object),
            "control_value_ac": "f8",
            "control_mode_dc": dtype(object),
            "control_value_dc": "f8",
            "controllable": "bool",
            "in_service": "bool",
        },
        "_empty_res_bi_vsc": {
            "p_mw": "f8",
            "q_mvar": "f8",
            "p_dc_mw_p": "f8",
            "p_dc_mw_m": "f8",
            "vm_internal_pu": "f8",
            "vm_internal_degree": "f8",
            "vm_pu": "f8",
            "va_degree": "f8",
            "vm_internal_dc_pu_p": "f8",
            "vm_internal_dc_pu_m": "f8",
            "vm_dc_pu_p": "f8",
            "vm_dc_pu_m": "f8",
        },
        # result tables
        "_empty_res_bus": {
            "vm_pu": "f8",
            "va_degree": "f8",
            "p_mw": "f8",
            "q_mvar": "f8"},
        "_empty_res_bus_dc": {
            "vm_pu": "f8",
            "p_mw": "f8"},
        "_empty_res_ext_grid": {
            "p_mw": "f8",
            "q_mvar": "f8"},
        "_empty_res_line": {
            "p_from_mw": "f8",
            "q_from_mvar": "f8",
            "p_to_mw": "f8",
            "q_to_mvar": "f8",
            "pl_mw": "f8",
            "ql_mvar": "f8",
            "i_from_ka": "f8",
            "i_to_ka": "f8",
            "i_ka": "f8",
            "vm_from_pu": "f8",
            "va_from_degree": "f8",
            "vm_to_pu": "f8",
            "va_to_degree": "f8",
            "loading_percent": "f8",
        },
        "_empty_res_line_dc": {
            "p_from_mw": "f8",
            "p_to_mw": "f8",
            "pl_mw": "f8",
            "i_from_ka": "f8",
            "i_to_ka": "f8",
            "i_ka": "f8",
            "vm_from_pu": "f8",
            "vm_to_pu": "f8",
            "loading_percent": "f8",
        },
        "_empty_res_trafo": {
            "p_hv_mw": "f8",
            "q_hv_mvar": "f8",
            "p_lv_mw": "f8",
            "q_lv_mvar": "f8",
            "pl_mw": "f8",
            "ql_mvar": "f8",
            "i_hv_ka": "f8",
            "i_lv_ka": "f8",
            "vm_hv_pu": "f8",
            "va_hv_degree": "f8",
            "vm_lv_pu": "f8",
            "va_lv_degree": "f8",
            "loading_percent": "f8",
        },
        "_empty_res_load": {
            "p_mw": "f8",
            "q_mvar": "f8"
        },
        "_empty_res_asymmetric_load": {
            "p_mw": "f8",
            "q_mvar": "f8"
        },
        "_empty_res_asymmetric_sgen": {
            "p_mw": "f8",
            "q_mvar": "f8"
        },
        "_empty_res_motor": {
            "p_mw": "f8",
            "q_mvar": "f8"
        },
        "_empty_res_sgen": {
            "p_mw": "f8",
            "q_mvar": "f8"
        },
        "_empty_res_shunt": {
            "p_mw": "f8",
            "q_mvar": "f8",
            "vm_pu": "f8"
        },
        "_empty_res_svc": {
            "thyristor_firing_angle_degree": "f8",
            "x_ohm": "f8",
            "q_mvar": "f8",
            "vm_pu": "f8",
            "va_degree": "f8",
        },
        "_empty_res_ssc": {
            "q_mvar": "f8",
            "vm_internal_pu": "f8",
            "va_internal_degree": "f8",
            "vm_pu": "f8",
            "va_degree": "f8",
        },
        "_empty_res_vsc": {
            "p_mw": "f8",
            "q_mvar": "f8",
            "p_dc_mw": "f8",
            "vm_internal_pu": "f8",
            "va_internal_degree": "f8",
            "vm_pu": "f8",
            "va_degree": "f8",
            "vm_internal_dc_pu": "f8",
            "vm_dc_pu": "f8",
        },
        "_empty_res_switch": {
            "i_ka": "f8",
            "loading_percent": "f8",
            "p_from_mw": "f8",
            "q_from_mvar": "f8",
            "p_to_mw": "f8",
            "q_to_mvar": "f8",
        },
        "_empty_res_impedance": {
            "p_from_mw": "f8",
            "q_from_mvar": "f8",
            "p_to_mw": "f8",
            "q_to_mvar": "f8",
            "pl_mw": "f8",
            "ql_mvar": "f8",
            "i_from_ka": "f8",
            "i_to_ka": "f8",
        },
        "_empty_res_tcsc": {
            "thyristor_firing_angle_degree": "f8",
            "x_ohm": "f8",
            "p_from_mw": "f8",
            "q_from_mvar": "f8",
            "p_to_mw": "f8",
            "q_to_mvar": "f8",
            "pl_mw": "f8",
            "ql_mvar": "f8",
            "i_ka": "f8",
            "vm_from_pu": "f8",
            "va_from_degree": "f8",
            "vm_to_pu": "f8",
            "va_to_degree": "f8",
        },
        "_empty_res_dcline": {
            "p_from_mw": "f8",
            "q_from_mvar": "f8",
            "p_to_mw": "f8",
            "q_to_mvar": "f8",
            "pl_mw": "f8",
            "vm_from_pu": "f8",
            "va_from_degree": "f8",
            "vm_to_pu": "f8",
            "va_to_degree": "f8",
        },
        "_empty_res_source_dc": {
            "p_dc_mw": "f8"
        },
        "_empty_res_load_dc": {
            "p_dc_mw": "f8"
        },
        "_empty_res_ward": {
            "p_mw": "f8",
            "q_mvar": "f8",
            "vm_pu": "f8"
        },
        "_empty_res_xward": {
            "p_mw": "f8",
            "q_mvar": "f8",
            "vm_pu": "f8",
            "va_internal_degree": "f8",
            "vm_internal_pu": "f8",
        },
        "_empty_res_trafo_3ph": {
            "p_a_hv_mw": "f8",
            "q_a_hv_mvar": "f8",
            "p_b_hv_mw": "f8",
            "q_b_hv_mvar": "f8",
            "p_c_hv_mw": "f8",
            "q_c_hv_mvar": "f8",
            "p_a_lv_mw": "f8",
            "q_a_lv_mvar": "f8",
            "p_b_lv_mw": "f8",
            "q_b_lv_mvar": "f8",
            "p_c_lv_mw": "f8",
            "q_c_lv_mvar": "f8",
            "pl_a_mw": "f8",
            "ql_a_mvar": "f8",
            "pl_b_mw": "f8",
            "ql_b_mvar": "f8",
            "pl_c_mw": "f8",
            "ql_c_mvar": "f8",
            "i_a_hv_ka": "f8",
            "i_a_lv_ka": "f8",
            "i_b_hv_ka": "f8",
            "i_b_lv_ka": "f8",
            "i_c_hv_ka": "f8",
            "i_c_lv_ka": "f8",
            "loading_a_percent": "f8",
            "loading_b_percent": "f8",
            "loading_c_percent": "f8",
            "loading_percent": "f8",
        },
        "_empty_res_trafo3w": {
            "p_hv_mw": "f8",
            "q_hv_mvar": "f8",
            "p_mv_mw": "f8",
            "q_mv_mvar": "f8",
            "p_lv_mw": "f8",
            "q_lv_mvar": "f8",
            "pl_mw": "f8",
            "ql_mvar": "f8",
            "i_hv_ka": "f8",
            "i_mv_ka": "f8",
            "i_lv_ka": "f8",
            "vm_hv_pu": "f8",
            "va_hv_degree": "f8",
            "vm_mv_pu": "f8",
            "va_mv_degree": "f8",
            "vm_lv_pu": "f8",
            "va_lv_degree": "f8",
            "va_internal_degree": "f8",
            "vm_internal_pu": "f8",
            "loading_percent": "f8",
        },
        "_empty_res_bus_3ph": {
            "vm_a_pu": "f8",
            "va_a_degree": "f8",
            "vm_b_pu": "f8",
            "va_b_degree": "f8",
            "vm_c_pu": "f8",
            "va_c_degree": "f8",
            "p_a_mw": "f8",
            "q_a_mvar": "f8",
            "p_b_mw": "f8",
            "q_b_mvar": "f8",
            "p_c_mw": "f8",
            "q_c_mvar": "f8",
        },
        "_empty_res_ext_grid_3ph": {
            "p_a_mw": "f8",
            "q_a_mvar": "f8",
            "p_b_mw": "f8",
            "q_b_mvar": "f8",
            "p_c_mw": "f8",
            "q_c_mvar": "f8",
        },
        "_empty_res_line_3ph": {
            "p_a_from_mw": "f8",
            "q_a_from_mvar": "f8",
            "p_b_from_mw": "f8",
            "q_b_from_mvar": "f8",
            "p_c_from_mw": "f8",
            "q_c_from_mvar": "f8",
            "p_a_to_mw": "f8",
            "q_a_to_mvar": "f8",
            "p_b_to_mw": "f8",
            "q_b_to_mvar": "f8",
            "p_c_to_mw": "f8",
            "q_c_to_mvar": "f8",
            "pl_a_mw": "f8",
            "ql_a_mvar": "f8",
            "pl_b_mw": "f8",
            "ql_b_mvar": "f8",
            "pl_c_mw": "f8",
            "ql_c_mvar": "f8",
            "i_a_from_ka": "f8",
            "i_a_to_ka": "f8",
            "i_b_from_ka": "f8",
            "i_b_to_ka": "f8",
            "i_c_from_ka": "f8",
            "i_c_to_ka": "f8",
            "i_a_ka": "f8",
            "i_b_ka": "f8",
            "i_c_ka": "f8",
            "i_n_from_ka": "f8",
            "i_n_to_ka": "f8",
            "i_n_ka": "f8",
            "loading_a_percent": "f8",
            "loading_b_percent": "f8",
            "loading_c_percent": "f8",
        },
        "_empty_res_asymmetric_load_3ph": {
            "p_a_mw": "f8",
            "q_a_mvar": "f8",
            "p_b_mw": "f8",
            "q_b_mvar": "f8",
            "p_c_mw": "f8",
            "q_c_mvar": "f8",
        },
        "_empty_res_asymmetric_sgen_3ph": {
            "p_a_mw": "f8",
            "q_a_mvar": "f8",
            "p_b_mw": "f8",
            "q_b_mvar": "f8",
            "p_c_mw": "f8",
            "q_c_mvar": "f8",
        },
        "_empty_res_storage": {
            "p_mw": "f8",
            "q_mvar": "f8"
        },
        "_empty_res_storage_3ph": {
            "p_a_mw": "f8",
            "p_b_mw": "f8",
            "p_c_mw": "f8",
            "q_a_mvar": "f8",
            "q_b_mvar": "f8",
            "q_c_mvar": "f8",
        },
        "_empty_res_gen": {
            "p_mw": "f8",
            "q_mvar": "f8",
            "va_degree": "f8",
            "vm_pu": "f8",
        },
        "_empty_res_protection": {
            "switch_id": "f8",
            "prot_type": dtype(object),
            "trip_melt": "bool",
            "act_param": dtype(object),
            "act_param_val": "f8",
            "trip_melt_time_s": "f8",
        },
        # internal
        "_ppc": None,
        "_ppc0": None,
        "_ppc1": None,
        "_ppc2": None,
        "_is_elements": None,
        "_pd2ppc_lookups": [{
            "bus": None,
            "bus_dc": None,
            "ext_grid": None,
            "gen": None,
            "branch": None,
            "branch_dc": None,
        }],
        "version": __version__,
        "format_version": __format_version__,
        "converged": False,
        "OPF_converged": False,
        "name": "",
        "f_hz": 50.0,
        "sn_mva": 1,
    }
def get_std_type_structure_dict() -> dict:
    """
    This function returns the structure dict of the std_types
    """
    return {
        # structure data
        "line": {
            "r_ohm_per_km": "f8",
            "r0_ohm_per_km": "f8",
            "x_ohm_per_km": "f8",
            "x0_ohm_per_km": "f8",
            "c_nf_per_km": "f8",
            "c0_nf_per_km": "f8",
            "g_us_per_km": "f8",
            "g0_us_per_km": "f8",
            "max_i_ka": "f8",
            "type": dtype(object),
            "q_mm2": "f8",
            "alpha": "f8",
            "voltage_rating": dtype(object),
        },
        "line_dc": {
            "r_ohm_per_km": "f8",
            "r0_ohm_per_km": "f8",
            "g_us_per_km": "f8",
            "g0_us_per_km": "f8",
            "max_i_ka": "f8",
            "type": dtype(object),
            "q_mm2": "f8",
            "alpha": "f8",
            "voltage_rating": "f8",
        },
        "trafo": {
            "sn_mva": "f8",
            "vn_hv_kv": "f8",
            "vn_lv_kv": "f8",
            "vk_percnet": "f8",
            "vk0_percent": "f8",
            "vkr_percent": "f8",
            "vkr0_percent": "f8",
            "pfe_kw": "f8",
            "i0_percent": "f8",
            "shift_degree": "f8",
            "vector_group": dtype(object),
            "tap_side": dtype(object),
            "tap_neutral": "f8",
            "tap_min": "f8",
            "tap_max": "f8",
            "tap_step_degree": "f8",
            "tap_step_percent": "f8",
            "tap_change_type": dtype(object),
            "trafo_characteristic_table": "bool",
        },
        "trafo3w": {
            "sn_hv_mva": "f8",
            "sn_mv_mva": "f8",
            "sn_lv_mva": "f8",
            "vn_hv_kv": "f8",
            "vn_mv_kv": "f8",
            "vn_lv_kv": "f8",
            "vk_hv_percent": "f8",
            "vk_mv_percent": "f8",
            "vk_lv_percent": "f8",
            "vk0_hv_percent": "f8",
            "vk0_mv_percent": "f8",
            "vk0_lv_percent": "f8",
            "vkr_hv_percent": "f8",
            "vkr_mv_percent": "f8",
            "vkr_lv_percent": "f8",
            "vkr0_hv_percent": "f8",
            "vkr0_mv_percent": "f8",
            "vkr0_lv_percent": "f8",
            "pfe_kw": "f8",
            "i0_percent": "f8",
            "shift_mv_degree": "f8",
            "shift_lv_degree": "f8",
            "tap_side": dtype(object),
            "tap_neutral": "f8",
            "tap_min": "f8",
            "tap_max": "f8",
            "tap_step_percent": "f8",
            "tap_step_degree": "f8",
            "tap_pos": "f8",
            "tap_at_star_point": "bool",
            "tap_changer_type": dtype(object),
            "id_characteristic_table": pd.Int64Dtype(),
            "vector_group": dtype(object),
        },
        "fuse": {
            "fuse_type": dtype(object),
            "i_rated_a": "f8",
            "t_avg": dtype(object),
            "t_min": dtype(object),
            "t_total": dtype(object),
            "x_avg": dtype(object),
            "x_min": dtype(object),
            "x_total": dtype(object),
        },
    }


